﻿// Decompiled with JetBrains decompiler
// Type: MCM.Abstractions.Wrapper.PropertyDefinitionWithActionFormatWrapper
// Assembly: MCMv5, Version=5.10.2.0, Culture=neutral, PublicKeyToken=null
// MVID: 7AB326B9-B2B4-41C2-9177-68E944071101
// Assembly location: D:\steam\steamapps\workshop\content\261550\2859238197\bin\Win64_Shipping_Client\MCMv5.dll

using HarmonyLib.BUTR.Extensions;
using System;

#nullable enable
namespace MCM.Abstractions.Wrapper
{
  public sealed class PropertyDefinitionWithActionFormatWrapper : 
    BasePropertyDefinitionWrapper,
    IPropertyDefinitionWithActionFormat
  {
    public Func<object, string> ValueFormatFunc { get; }

    public PropertyDefinitionWithActionFormatWrapper(object @object)
      : base(@object)
    {
      if (!(AccessTools2.Property(@object.GetType(), nameof (ValueFormatFunc))?.GetValue(@object) is Func<object, string> func))
        func = (Func<object, string>) (obj => obj.ToString());
      this.ValueFormatFunc = func;
    }
  }
}
